﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;

namespace Arkanoid
{
    class Barra
    {
        public Texture2D textura;
        public Vector2 posicao;
        int velocidade = 5;
        public int efeito = 0;
        GraphicsDeviceManager graphics;
        int larguraBarra = 0;

        public bool aumentarBarra = false;
        public TimeSpan tempoUpgrade = new TimeSpan(0,0,0);

        public Rectangle retangulo;

        public Barra(GraphicsDeviceManager graphics, Texture2D textura, Vector2 posicao)
        {
            this.textura = textura;
            this.posicao = posicao;
            this.graphics = graphics;
        }

        public void Controle()
        {
            KeyboardState teclado = Keyboard.GetState();

            if (teclado.IsKeyDown(Keys.A) && posicao.X > 1)
            {
                posicao.X -= velocidade;
                efeito = 2;
            }
            if(teclado.IsKeyUp(Keys.A))
            {
                efeito = 0;
            }

            if (teclado.IsKeyDown(Keys.D) && posicao.X < graphics.PreferredBackBufferWidth - textura.Width - 1 - larguraBarra)
            {
                posicao.X += velocidade;
                efeito = -2;
            }
        }

        public void Upgrades(GameTime gameTime)
        {
            if (aumentarBarra)
            {
                larguraBarra = 100;
                tempoUpgrade += gameTime.ElapsedGameTime;

                if (tempoUpgrade.Seconds > 15)
                {
                    aumentarBarra = false;
                    tempoUpgrade = TimeSpan.Zero;
                }
            }
            else
            {
                larguraBarra = 0;
            }
        }

        public void Update(GameTime gameTime)
        {
            Controle();
            Upgrades(gameTime);

            retangulo = new Rectangle((int)posicao.X + 1, (int)posicao.Y + 1, (textura.Width - 2) + larguraBarra, textura.Height - 3);
        }

        public void Draw(SpriteBatch spriteBatch)
        {
            spriteBatch.Draw(textura, retangulo, Color.White);
        }
    }
}
